ostree.git
8 years agoDisable "ostree trivial-httpd" by default now
Colin Walters [Tue, 7 Mar 2017 22:32:50 +0000 (17:32 -0500)]
Disable "ostree trivial-httpd" by default now

This goes farther along the path of deprecating it; consumers should
have been ported at this point.  Though probably a lot of people
may still use `rpm-ostree-toolbox`.

Closes: #723
Approved by: jlebon

8 years agolibostree: add versioning macros
Georges Basile Stavracas Neto [Fri, 10 Mar 2017 17:33:52 +0000 (14:33 -0300)]
libostree: add versioning macros

OSTree currently provides no way to inspect the versioning
information at run time, being only available at compile
time through pkg-config.

This is a problem for e.g. Flatpak, that needs to check
whether the 'update-frequency' option is available. Checking
at compile time isn't great since it's not looking for new
symbols, but only if an optional feature is present.

This commit, then, adds a new header that is generated
at compile time, exposing OSTree's versioning information.

Closes: #728
Approved by: cgwalters

8 years agoFix includes if built against musl
André Klitzing [Fri, 10 Mar 2017 21:01:21 +0000 (22:01 +0100)]
Fix includes if built against musl

LOCK_* is defined in sys/file.h

http://git.musl-libc.org/cgit/musl/tree/include/sys/file.h

Closes: #730
Approved by: cgwalters

8 years agoAvoid unnecessary includes
André Klitzing [Fri, 10 Mar 2017 21:24:57 +0000 (22:24 +0100)]
Avoid unnecessary includes

"return" will do the same here. Also that style is used at the
end of the function.

Closes: #732
Approved by: jlebon

8 years agoRelease 2017.3
Colin Walters [Thu, 9 Mar 2017 02:47:00 +0000 (21:47 -0500)]
Release 2017.3

It's been almost a month, I think the current git is working well and
not too risky.  We have some new API additions which I think the
various consumers of them are going to want.

Closes: #726
Approved by: jlebon

9 years agorepo/checkout: Convert a few functions to new "stmt-decl/FALSE" style
Colin Walters [Mon, 6 Mar 2017 20:27:22 +0000 (15:27 -0500)]
repo/checkout: Convert a few functions to new "stmt-decl/FALSE" style

Just testing the waters a bit more.  Yeah, definitely nicer.

Closes: #722
Approved by: jlebon

9 years agoostree: allow setting update frequency from command line
Georges Basile Stavracas Neto [Wed, 8 Mar 2017 17:19:29 +0000 (14:19 -0300)]
ostree: allow setting update frequency from command line

After commit 80b3edc64731a5f0 introducing the option to set
a custom timeout, adapt the ostree program to be able to update
that.

Closes: #725
Approved by: jlebon

9 years agorepo-pull: add option to set the async update frequency
Georges Basile Stavracas Neto [Wed, 8 Mar 2017 17:14:15 +0000 (14:14 -0300)]
repo-pull: add option to set the async update frequency

When using Flatpak with GNOME Software, it is important to
show the progress of the download and install as close as
possible to the real progress.

However, OSTree forces the frequency to call the async
progress callback to 1 second, which causes an unpleasant
effect on the UI, specially when the download size is so
small that everything happens in less than 1 second.

Fix that by adding making OSTree read a custom 'update-frequency'
option and set the timeout source timeout to that. If
no custom frequency is passed, we assume the default 1
second timeout, maintaining the current behavior.

Closes: #725
Approved by: jlebon

9 years agorepo/checkout: fix 32-bit builds
Christian Hergert [Wed, 8 Mar 2017 06:48:51 +0000 (22:48 -0800)]
repo/checkout: fix 32-bit builds

__dev_t is 64-bit even on 32-bit Linux systems such as i386.

Closes: #724
Approved by: cgwalters

9 years agocheckout: Support a "pure addition" mode
Colin Walters [Thu, 2 Mar 2017 03:42:07 +0000 (22:42 -0500)]
checkout: Support a "pure addition" mode

I plan to use this for `rpm-ostree livefs`.
https://github.com/projectatomic/rpm-ostree/issues/639

Closes: #714
Approved by: jlebon

9 years agorepo/checkout: Verify early if src/destination are on same device
Colin Walters [Mon, 6 Mar 2017 19:51:14 +0000 (14:51 -0500)]
repo/checkout: Verify early if src/destination are on same device

At least in all Linux kernels up to today, one can never `link()` across
devices, so we might as well verify that up front. This will help for a future
patch to add a new type of union-add checkout, since Linux checks for `EEXIST`
before `EXDEV`.

Closes: #714
Approved by: jlebon

9 years agoAllow and start using C99 declaration-after-statement
Colin Walters [Fri, 3 Mar 2017 17:10:46 +0000 (12:10 -0500)]
Allow and start using C99 declaration-after-statement

I've seen code in a few places that I think on balance is definitely better this
way.  Some of our functions have huge variable declaration sections.
This change includes one small example where we could start using declarations
after statements.

A concern I had was - how does this interact with `__attribute__((cleanup))` and
early returns? I tested it, and AFAICS the behavior is what you'd expect - the
cleanup function isn't called if its variable isn't reachable.

Closes: #718
Approved by: jlebon

9 years agolibostree: Allow compression level to be set for archive-z2 stream
Philip Withnall [Mon, 6 Mar 2017 17:48:36 +0000 (17:48 +0000)]
libostree: Allow compression level to be set for archive-z2 stream

Add a ostree_raw_file_to_archive_z2_stream_with_options() variant of
ostree_raw_file_to_archive_z2_stream(), to allow a compression-level
option to be passed in and passed through to zlib.

This is useful when building archive-z2 files on the fly for
transmission over a non-bandwidth-limited channel, such as a local
network. In this case, CPU time is more valuable than bandwidth, so we
want a low compression level.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #721
Approved by: cgwalters

9 years agofetcher/curl: Fix leaks caught by ASAN
Colin Walters [Sat, 4 Mar 2017 15:11:15 +0000 (10:11 -0500)]
fetcher/curl: Fix leaks caught by ASAN

I had to rebuild `glib` with `-fsanitize=address` in order to get a stack trace
to finally get this one.  However, *installing* that glib "system wide"
in my container breaks everything (including `rpm-ostree`, `dnf`, `pkg-config` etc.)
that wasn't built with ASAN.

So my test scenario right now is to extract the libs and do e.g.:
```
make && env LD_LIBRARY_PATH=$HOME/src/distgit/fedora/glib2/asan-libs make check TESTS=tests/test-basic.sh
```

Closes: #719
Approved by: jlebon

9 years agobuild: Fix disabling --enable-man if xsltproc is not available
Philip Withnall [Mon, 6 Mar 2017 12:19:28 +0000 (12:19 +0000)]
build: Fix disabling --enable-man if xsltproc is not available

If --enable-man=maybe (the default), and xsltproc is not available, the
configuration code would check for it, correctly set enable_man=no, then
incorrectly overwrite that with enable_man=yes, which would result in
later trying to execute $(XSLTPROC) when it’s empty.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #720
Approved by: cgwalters

9 years agopull: Use all available commits for delta sources
Colin Walters [Fri, 24 Feb 2017 02:49:21 +0000 (21:49 -0500)]
pull: Use all available commits for delta sources

The previous logic for static deltas was to use as a FROM
revision the current branch tip.  However, we want
to support deltas between branches in an automatic
fashion.

If a summary file is available, we already have an
enumerated list of deltas - so the logic introduced
here is to search it, and find the newest commit
we have locally that matches the TO revision target.

This builds on some thoughts from
https://github.com/ostreedev/ostree/pull/151#issuecomment-232390232

Closes: https://github.com/ostreedev/ostree/pull/151
Closes: #710
Approved by: giuseppe

9 years agogrub2: Use "linux16" only on x86/x86_64
Colin Walters [Fri, 3 Mar 2017 02:30:10 +0000 (21:30 -0500)]
grub2: Use "linux16" only on x86/x86_64

Got a report that a Fedora Atomic Host built for ppc64le didn't work with the
`linux16`, it needed `linux`. See the comments for more links.

Closes: #716
Approved by: vathpela

9 years agolibglnx: bump for -Wmaybe-uninitialized fix
Jonathan Lebon [Thu, 2 Mar 2017 19:50:24 +0000 (14:50 -0500)]
libglnx: bump for -Wmaybe-uninitialized fix

https://github.com/GNOME/libglnx/pull/37

Closes: #715
Approved by: cgwalters

9 years agopull: don't use static deltas if archive repo
Jonathan Lebon [Thu, 2 Mar 2017 17:11:17 +0000 (12:11 -0500)]
pull: don't use static deltas if archive repo

In https://github.com/ostreedev/ostree/pull/408, we disabled the use of
static deltas when mirroring. Later,
https://github.com/ostreedev/ostree/pull/506 loosened this up again so
that we could use static deltas when mirroring into bare{-user} repos.

However, the issue which originally spurrred #408 is even more generic
than that: we want to avoid static deltas for any archive repo, not just
when doing a mirror pull. This patch tightens this up, and also
relocates the decision code to make it easier to read.

Closes: #715
Approved by: cgwalters

9 years agodeltas: Expose the filename parameter
Gatis Paeglis [Thu, 24 Nov 2016 14:59:36 +0000 (15:59 +0100)]
deltas: Expose the filename parameter

The C API (ostree_repo_static_delta_generate) knows what to do
with it, but this parameter was never exposed via command line
tool.

Closes: https://github.com/ostreedev/ostree/issues/695
Closes: #703
Approved by: jlebon

9 years agogrub2: Use g_spawn_sync() rather than GSubprocess to avoid SIGCHLD
Colin Walters [Wed, 22 Feb 2017 16:33:38 +0000 (11:33 -0500)]
grub2: Use g_spawn_sync() rather than GSubprocess to avoid SIGCHLD

Due to the async nature of `GSubprocess` it grabs `SIGCHLD` which
affects other software which might be using libostree, such as
QtOTA.

Closes: https://github.com/ostreedev/ostree/issues/696
Closes: #702
Approved by: jlebon

9 years agoupgrade: Add support for --pull-only and --deploy-only
Colin Walters [Thu, 5 Jan 2017 16:29:41 +0000 (11:29 -0500)]
upgrade: Add support for --pull-only and --deploy-only

This makes it easier to script downloading updates in the background,
and only do deployments just before rebooting.

Partially addresses https://github.com/ostreedev/ostree/issues/640

Closes: #642
Approved by: jlebon

9 years agofetcher: Log failures into journal
Colin Walters [Thu, 23 Feb 2017 14:24:58 +0000 (09:24 -0500)]
fetcher: Log failures into journal

Particularly when HTTP requests fail, I really want a lot more information.
We could theoretically stuff it into the `GError` message field, but
that gets ugly *fast*.

Using the systemd journal allows us to log things in a structured fashion.
Right now e.g. rpm-ostree won't be aware of this additional information,
but I think we could teach it to be down the line.

In the short term, users can learn to find it from `systemctl status rpm-ostreed`
or `journalctl -b -r -u rpm-ostreed`, etc.

One thing I'd like to do next is log successful fetches of e.g. commit objects
as well with more information about the originating server (things like the
final URL if we were redirected, did we use TLS pinning, what was the negotiated
TLS version+cipher, etc).

Closes: #708
Approved by: jlebon

9 years agodeploy/libmount: Fix build with old util-linux 2.23 (CentOS7)
Colin Walters [Fri, 24 Feb 2017 15:18:27 +0000 (10:18 -0500)]
deploy/libmount: Fix build with old util-linux 2.23 (CentOS7)

https://github.com/ostreedev/ostree/pull/705 broke the build
on CentOS 7 which only has util-linux 2.23.

When I was thinking about this, I realized that there must really be a way to
make this safe even for older versions. Looking at that version of util-linux,
all we need to do is invert the order of frees so we `mnt_free_table()` *before*
`mnt_free_cache()`, like util-linux does:

https://github.com/karelzak/util-linux/blob/stable/v2.23/sys-utils/eject.c#L1131

We still use the `_unref()` versions if available.  I also fixed
the ordering there too for double plus redundant safety.

Closes: #712
Approved by: jlebon

9 years agotree-wide: Squash noncritical compiler warnings
Colin Walters [Fri, 24 Feb 2017 14:33:20 +0000 (09:33 -0500)]
tree-wide: Squash noncritical compiler warnings

Should fix everything from
<https://kojipkgs.fedoraproject.org//packages/ostree/2017.2/3.fc25/data/logs/x86_64/build.log>

Anything that uses autocleanups should *always* be initialized directly I think,
even if a few lines down we directly assign, since this way it's more robust
against refactoring.

And the `freopen()` warnings are right - IMO we should *always* check return
values.

Closes: #711
Approved by: jlebon

9 years agoman/repo-config: Document mirrorlist
Colin Walters [Thu, 23 Feb 2017 23:01:28 +0000 (18:01 -0500)]
man/repo-config: Document mirrorlist

We should get more strict about docs. Add some text about `contenturl` and
mirrorlists.

Closes: #709
Approved by: jlebon

9 years agodeploy: Correctly use libmount unref() calls rather than free()
Colin Walters [Thu, 23 Feb 2017 14:40:17 +0000 (09:40 -0500)]
deploy: Correctly use libmount unref() calls rather than free()

We saw a random ostree SEGV start popping up in our CI environment:
https://github.com/projectatomic/rpm-ostree/pull/641#issuecomment-281870424

Looking at this code more and comparing it to what util-linux does, I noticed we
had a write-after-free, since `mnt_unref_table()` will invoke
`mnt_unref_cache()` on its cache, and that function does:

```
if (cache) {
cache->rfcount--;
```

unconditionally.

Fix this by using `unref()`.

Closes: #705
Approved by: jlebon

9 years agomain: Make ostree --version output YAML (and add gitrev)
Colin Walters [Fri, 17 Feb 2017 15:22:43 +0000 (10:22 -0500)]
main: Make ostree --version output YAML (and add gitrev)

I learned today that `docker version` does this and I really like
the idea.  While we have the patient open, also add the gitrev
with code taken from https://github.com/projectatomic/rpm-ostree/pull/584

Closes: #691
Approved by: giuseppe

9 years agobuild: Add --with-smack, use it to reset contexts for writing objects
Colin Walters [Tue, 21 Feb 2017 18:58:40 +0000 (13:58 -0500)]
build: Add --with-smack, use it to reset contexts for writing objects

At some point we'll want to follow what systemd is doing and add
better support for smack, along the lines of `OstreeSePolicy`.  However,
short term this patch fixes AGL which uses Smack.

See: https://jira.automotivelinux.org/browse/SPEC-386
See: https://github.com/ostreedev/ostree/pull/698

Closes: #698
Approved by: OYTIS

9 years agoci: Hard error on all -fsanitize=undefined warnings
Colin Walters [Fri, 17 Feb 2017 21:59:21 +0000 (16:59 -0500)]
ci: Hard error on all -fsanitize=undefined warnings

I saw in a recent test log a ton of spam
```
libglnx/glnx-dirfd.c:253:3: runtime error: null pointer passed as argument 1, which is declared to never be null
```
which actually turned out to be libglnx getting reverted.  But
let's be sure now we actually bomb out quickly on UBSAN warnings
in general.

Closes: #693
Approved by: jlebon

9 years agolibglnx: Re-bump to master due to accidental reversion
Colin Walters [Fri, 17 Feb 2017 21:58:26 +0000 (16:58 -0500)]
libglnx: Re-bump to master due to accidental reversion

Commit a1805d6101eb8efeaa72459c22d88ed08ff7a065 reverted
this unintentionally.

We should have some CI check that requires a commit message has
something like "libglnx bump" or something?

Closes: #693
Approved by: jlebon

9 years agoREADME.md: Add more/clean up links to consuming projects
Colin Walters [Tue, 21 Feb 2017 16:20:52 +0000 (11:20 -0500)]
README.md: Add more/clean up links to consuming projects

Add meta-updater and QtOTA, and delete OpenEmbedded since it's implied by the
first two. Merge rpm-ostree + Atomic Host since they're close. Clarify
gnome-continuous a bit.

Closes: #700
Approved by: jlebon

9 years agolibtest: Re-enable quiet mode for building fs tree
Colin Walters [Tue, 21 Feb 2017 15:15:03 +0000 (10:15 -0500)]
libtest: Re-enable quiet mode for building fs tree

I think I commented this out while debugging something, and forgot to re-enable
it. Reading the log files should be a better again after this.

Closes: #699
Approved by: giuseppe

9 years agolib: Ensure an error is set in ensure_unlinked() if errno != ENOENT
Colin Walters [Sat, 18 Feb 2017 15:15:39 +0000 (10:15 -0500)]
lib: Ensure an error is set in ensure_unlinked() if errno != ENOENT

We hit this with:
```
27411 unlink("/boot/efi/EFI/fedora/grub.cfg.new") = -1 EROFS (Read-only file system)
```
from the grub2 code.

https://github.com/projectatomic/rpm-ostree/issues/633

Closes: #694
Approved by: giuseppe

9 years agoci: Install PyYAML
Colin Walters [Fri, 17 Feb 2017 20:59:20 +0000 (15:59 -0500)]
ci: Install PyYAML

We'll use it for https://github.com/ostreedev/ostree/pull/691

Closes: #692
Approved by: jlebon

9 years agopull: Fold together deltapart+fallback count for display
Colin Walters [Fri, 10 Feb 2017 23:09:16 +0000 (18:09 -0500)]
pull: Fold together deltapart+fallback count for display

It's just simpler, and I'm not sure people are going to care
much about the difference by default.

We already folded in the fallback sizes into the download totals, so folding in
the count makes things consistent; previously you could see e.g.
`3/3 parts, 100MB/150MB` and be confused.

Closes: #678
Approved by: giuseppe

9 years agopull: Explicitly error out if metadata objects are fallbacks
Colin Walters [Fri, 10 Feb 2017 22:35:23 +0000 (17:35 -0500)]
pull: Explicitly error out if metadata objects are fallbacks

I don't know why I added support for this; it makes no sense really. If we have
large metadata objects something has gone badly wrong.

The delta compiler has always only processed fallbacks for regular
content files.

Dropping support in the fetcher for this will simplify later handling of
fallback progress accounting.

Closes: #678
Approved by: giuseppe

9 years agorepo: Fix static delta progress display
Colin Walters [Fri, 10 Feb 2017 19:29:54 +0000 (14:29 -0500)]
repo: Fix static delta progress display

There were a few bugs here.

- We need to keep track of the size of the delta parts we've already processed,
  in order to make progress reliable at all in the face of interruptions.  Add
  a new `fetched-delta-part-size` async progress variable for this.
- The total before disregarded what we'd already downloaded, which was confusing.
  Now, a progress percentage is `fetched/total`.
- Correctly handle "unknown bytes/sec" in the progress display.

However, to be fully correct we need to show the fallback objects too. That
would require tracking in the pull code when we fetch an object as a fallback
versus "normally". This would be simpler really if we could assume in a run we
were *only* processing a delta, but currently we don't do that.

Related: https://github.com/ostreedev/ostree/issues/475

Closes: #678
Approved by: giuseppe

9 years agodelta-show: Don't dump whole superblock, do show fallback checksums
Colin Walters [Fri, 10 Feb 2017 21:10:20 +0000 (16:10 -0500)]
delta-show: Don't dump whole superblock, do show fallback checksums

Doing `g_variant_print (superblock)` is unreadable and not very useful,
since we show the checksums as byte arrays.

However, do show the checksums for fallback objects. This makes it easier to see
which objects are fallbacks (and inspect why).

Closes: #678
Approved by: giuseppe

9 years agodeltas: Don't put unreadable *from* objects in fallback
Colin Walters [Fri, 10 Feb 2017 21:05:17 +0000 (16:05 -0500)]
deltas: Don't put unreadable *from* objects in fallback

In https://github.com/ostreedev/ostree/pull/634 we introduced
a subtle regression - the unreadable object was added to the *new*
reachable objects, when it shouldn't have been.  Because it
was a *from* object, clients already had it.

This became more obvious now that I'm working on fixing delta
progress - I noticed my deltas were always starting out with 40MB
fetched, which turned out to be a non-world-readable initramfs object.

This code should simply *skip* the unreadable object, and the delta processing
below properly iterates over "new objects", so we'll pick it up from there.

Closes: #678
Approved by: giuseppe

9 years agocontrib/golang: rm directory
Giuseppe Scrivano [Thu, 16 Feb 2017 19:52:09 +0000 (20:52 +0100)]
contrib/golang: rm directory

rm -r the directory since we are keeping the Go bindings separately
under https://github.com/ostreedev/ostree-go

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Closes: #690
Approved by: cgwalters

9 years agoRelease 2017.2
Colin Walters [Tue, 14 Feb 2017 15:14:25 +0000 (10:14 -0500)]
Release 2017.2

We should get a release out to try to keep with at least a once-a-month cadence.
This one has some exciting stuff like libcurl and Rust, and various bugfixes.
Also importantly I want to cut this *before* we land some other bigger stuff, so
rpm-ostree can start using the reload_config API etc.

Closes: #685
Approved by: jlebon

9 years agorofiles-fuse: Support write/read_buf()
Alexander Larsson [Tue, 14 Feb 2017 13:36:28 +0000 (14:36 +0100)]
rofiles-fuse: Support write/read_buf()

These allow us to avoid copying a lot of data around
in userspace. Instead we splice the data directly from
the fd to the destination fd.

Closes: #684
Approved by: cgwalters

9 years agobuild: Remove .PHONY for Rust shared library
Colin Walters [Sat, 11 Feb 2017 20:33:57 +0000 (15:33 -0500)]
build: Remove .PHONY for Rust shared library

I have no idea why I made the lib `.PHONY` originally; it's clearly wrong, and I
noticed because when I was doing `sudo make install`, we were doing a rebuild,
which in turn triggered other things to be built, and they'd be owned by root.

Closes: #682
Approved by: jlebon

9 years agocommit: Support -F/--body-file, like git
Colin Walters [Sat, 11 Feb 2017 16:24:15 +0000 (11:24 -0500)]
commit: Support -F/--body-file, like git

This is more convenient to script for projects which haven't
yet made the leap to using the API.

Closes: https://github.com/ostreedev/ostree/issues/674
Closes: #681
Approved by: jlebon

9 years agolibglnx: Bump
Colin Walters [Fri, 10 Feb 2017 22:18:31 +0000 (17:18 -0500)]
libglnx: Bump

Pulls in the xattr fixes and the tempname perf improvement.

Closes: #680
Approved by: jlebon

9 years agoadmin-switch: Don't segfault if there's no remote
Anton Gerasimov [Mon, 13 Feb 2017 16:34:18 +0000 (17:34 +0100)]
admin-switch: Don't segfault if there's no remote

Switching between local branches should be supported too.

Signed-off-by: Anton Gerasimov <anton@advancedtelematic.com>
Closes: #683
Approved by: cgwalters

9 years agoostree-repo: Clarify error behaviour of remote option getters
Philip Withnall [Thu, 9 Feb 2017 19:49:06 +0000 (19:49 +0000)]
ostree-repo: Clarify error behaviour of remote option getters

Clarify the documentation for functions like
ostree_repo_get_remote_boolean_option(), stating what out_value will be
set to on error.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
Closes: #676
Approved by: cgwalters

9 years agolibostree: added empty ot_cleanup_{read,write}_archive macros.
Krisztian Litkey [Fri, 10 Feb 2017 12:14:27 +0000 (14:14 +0200)]
libostree: added empty ot_cleanup_{read,write}_archive macros.

Added empty macros for ot_cleanup_{read,write}_archive to fix
errors when compiling without libarchive.

Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
Closes: #677
Approved by: cgwalters

9 years agofetcher queue: also throttle on outstanding writes
Jonathan Lebon [Thu, 9 Feb 2017 03:06:05 +0000 (22:06 -0500)]
fetcher queue: also throttle on outstanding writes

When fetching over a fast enough connection, we can be receiving files
faster than we write them. This can then lead to EMFILE when we have
enough files open. This was made very easy to notice with the upcoming
libcurl backend, which makes use of pipelining.

Closes: #675
Approved by: cgwalters

9 years agolibcurl backend
Colin Walters [Thu, 8 Dec 2016 02:02:30 +0000 (21:02 -0500)]
libcurl backend

For rpm-ostree, we already link to libcurl indirectly via librepo, and
only having one HTTP library in process makes sense.

Further, libcurl is (I think) more popular in the embedded space.  It
also supports HTTP/2.0 today, which is a *very* nice to have for OSTree.

This seems to be working fairly well for me in my local testing, but it's
obviously brand new nontrivial code, so it's going to need some soak time.

The ugliest part of this is having to vendor in the soup-url code. With
Oxidation we could follow the path of Firefox and use the
[Servo URL parser](https://github.com/servo/rust-url).  Having to redo
cookie parsing also sucked, and that would also be a good oxidation target.

But that's for the future.

Closes: #641
Approved by: jlebon

9 years agopull: Show Estimating if we're scanning too
Colin Walters [Thu, 19 Jan 2017 10:49:23 +0000 (05:49 -0500)]
pull: Show Estimating if we're scanning too

The libcurl backend does all the work in the main thread/loop, which
seems to starve the idle scanning worker more.  With the libcurl
backend, we're a lot more likely to have at least one outstanding
metadata request.

But it can more easily transiently happen with libcurl that all of our current
fetches are content. To be accurate here, just show Estimating if we're scanning
too.

Closes: #654
Approved by: jlebon

9 years agofetcher: Drop the libsoup queue
Colin Walters [Thu, 19 Jan 2017 10:34:20 +0000 (05:34 -0500)]
fetcher: Drop the libsoup queue

Now that we have queuing in the higher level pull logic, we don't
need to do this anymore.

It's tempting to keep it since the code diff is so small (without
completely rewriting things), but dropping it here will make
it easier to see when things go wrong at a higher level.

Note that I kept an assertion.

Closes: #654
Approved by: jlebon

9 years agopull: Add queuing into the higher level logic
Colin Walters [Thu, 19 Jan 2017 02:57:07 +0000 (21:57 -0500)]
pull: Add queuing into the higher level logic

Working on the libcurl backend, I didn't want to reimplement another queue. I
think the queue logic is really better done at the high level, since the fetcher
knows how we want to prioritize metadata over content, etc.

Adding another queue here is duplication, but things will look nicer when we can
actually delete the libsoup one in the next commit.

Closes: #654
Approved by: jlebon

9 years agorepo: Add archive/zlib-level option, drop default compression to 6
Colin Walters [Tue, 7 Feb 2017 13:59:32 +0000 (08:59 -0500)]
repo: Add archive/zlib-level option, drop default compression to 6

The gzip default is 6.  When I was writing this code, I chose 9 under
the assumption that for long-term archival, the extra compression was
worth it.

Turns out level 9 is really, really not worth it.  Here's run at level 9
compressing the current Fedora Atomic Host into archive:

```
ostree --repo=repo pull-local repo-build fedora-atomic/25/x86_64/docker-host
real    2m38.115s
user    2m31.210s
sys     0m3.114s
617M    repo
```

And here's the new default level of 6:

```
ostree --repo=repo pull-local repo-build fedora-atomic/25/x86_64/docker-host
real    0m53.712s
user    0m43.727s
sys     0m3.601s
619M    repo
619M    total
```

As you can see, we run almost *three times* faster, and we take up *less
than one percent* more space.

Conclusion: Using level 9 is dumb.  And here's a run at compression level 1:

```
ostree --repo=repo pull-local repo-build fedora-atomic/25/x86_64/docker-host
real    0m24.073s
user    0m17.574s
sys     0m2.636s
643M    repo
643M    total
```

I would argue actually many people would prefer even this for "devel" repos.
For production repos, you want static deltas anyways.  (However, perhaps
we should support a model where generating a delta involves re-compressing
fallback objects with a bit stronger compression level).

Anyways, let's make everyone's life better and switch the default to 6.

Closes: #671
Approved by: jlebon

9 years agorust: Support `make dist` -> cargo vendor
Colin Walters [Sat, 4 Feb 2017 16:29:20 +0000 (11:29 -0500)]
rust: Support `make dist` -> cargo vendor

What we do here basically is set things up in a `dist-hook` so that our Rust
sources are vendored at `dist` time. This gives us a single tarball still, and
ideally should be transparent to downstream builders, as long as they have the
`cargo/rust` toolchain.

Closes: #669
Approved by: jlebon

9 years agolib: Add ostree_repo_reload_config()
Colin Walters [Mon, 30 Jan 2017 06:43:37 +0000 (07:43 +0100)]
lib: Add ostree_repo_reload_config()

For a long time we've cached the remote configs in the repo, which
mostly makes sense for the `repo/config` file, but less sense
for `/etc/ostree/remotes.d`, because we want to support admins
interactively editing them.

One can delete the repo instance and create a new one, but that's a bit ugly.
Let's introduce an API for this so rpm-ostree can reload remotes after
admins/scripts edit them in `/etc`.  We also might as well reload
any other entries in the config.

Structurually now, `ostree_repo_open()` deals with file descriptors, and then
calls `ostree_repo_reload_config()`. Except for the uncompressed cache, which is
the only thing that deals with FDs that can be configured. But we want to delete
that anyways.

No tests, since...we don't have a daemon in this codebase, don't want to shave
that yak just today.

Closes: #662
Approved by: jlebon

9 years agopackaging/: Delete
Colin Walters [Sun, 5 Feb 2017 13:25:47 +0000 (08:25 -0500)]
packaging/: Delete

This is obsolete for a few reasons. The spec file is out of date (mostly the
%files, but also the BRs), and further down the line we'll need to use `make
dist` so we pick up vendored Rust sources. So the "git archive" approach won't
work for much longer anyways.

This came up in https://mail.gnome.org/archives/ostree-list/2017-February/msg00005.html

Basically, anyone who wants to build packages should look at the upstream
dist-git - until such time as e.g. Fedora learns to support pulling spec files
from upstream.

Closes: #670
Approved by: giuseppe

9 years agotrusted.gpg.d: keep in the same location
Jonathan Lebon [Fri, 3 Feb 2017 19:10:27 +0000 (14:10 -0500)]
trusted.gpg.d: keep in the same location

With the package rename from ostree to libostree, the trusted.gpg.d/ dir
changed install location from /usr/share/ostree to /usr/share/libostree.
Let's keep the same dir to remain compatible with existing installations
that may already have keys there.

Closes: #668
Approved by: cgwalters

9 years agodoc: fix typo in CONTRIBUTING
Chen Fan [Fri, 3 Feb 2017 07:03:06 +0000 (15:03 +0800)]
doc: fix typo in CONTRIBUTING

Signed-off-by: Chen Fan <fan.chen@easystack.cn>
Closes: #667
Approved by: cgwalters

9 years agooxidation: Add implementation of bupsplit in Rust
Colin Walters [Wed, 25 Jan 2017 02:43:53 +0000 (21:43 -0500)]
oxidation: Add implementation of bupsplit in Rust

This is an initial drop of "oxidation", or adding implementation
of components in Rust.  The bupsplit code is a good target - no
dependencies, just computation.

Translation into Rust had a few twists -

 - The C code relies a lot on overflowing unsigned ints, and
   also on the C promotion rules for e.g. `uint8_t -> int32_t`
 - There were some odd loops that I introduced bugs in while
   translating...in particular, the function always returns `len`,
   but I mistakenly translated to `len+1`, resulting in an OOB
   read on the C side, which was hard to debug.

On the plus side, an off-by-one array indexing in the Rust code paniced nicely.

In practice, we'll need a lot more build infrastructure to make this work, such
as using `cargo vendor` when producing build artifacts for example. Also, Cargo
is yet another thing we need to cache.

Where do we go with this? Well, I think we should merge this, it's not a lot of
code. We can just have it be an alternative CI target. Should we do a lot more
right now? Probably not immediately, but I find the medium/long term prospects
pretty exciting!

Closes: #656
Approved by: jlebon

9 years agoRename to libOSTree
Colin Walters [Mon, 30 Jan 2017 04:41:59 +0000 (05:41 +0100)]
Rename to libOSTree

There are many motivating factors. The biggest is simply that at a practical
level, the command line is not sufficient to build a real system. The docs say
that it's a demo for the library. Let's make that more obvious, so people don't
try to use `ostree admin upgrade` for their real systems, and also don't use
e.g. `ostree commit` on the command line outside of test suites/quick hacking.

This change will also help clarify the role of rpm-ostree, which we will likely
be renamed to "nts". Then use of the term "ostree" will become much clearer. And
similarly for other people writing upgraders, they can say they use libostree.

I didn't try to change all of the docs and code at once, because it's going to
lead to conflicts.

The next big steps are:

  - Rename the github repo (github will inject a redirect)
  - Look at supporting a build where we don't do `ostree admin`, or at least
    it's only built for tests. We may want to split it off as a separate binary
    or so? That way people with their own upgraders don't need to ship it.

Closes: #659
Approved by: jlebon

9 years agotests: Add setup for more realistic repo, change pull-many to use
Colin Walters [Sun, 29 Jan 2017 19:15:17 +0000 (14:15 -0500)]
tests: Add setup for more realistic repo, change pull-many to use

As OSTree has evolved over time, the tests grew with it.  We
didn't start out with static deltas or a summary file, and the
tests reflect this.

What I really want to do is change more of the pull tests, from
corruption/proxying/mirroring etc. to use this more realistic
repo rather than the tiny one the other test creates.

We start by using some of the code from `test-pull-many.sh`, and change that
test to use `--disable-static-deltas` for pull, since the point of that test is
to *not* test deltas.

Still TODO is investigate changing other tests to use this.

Closes: #658
Approved by: jlebon

9 years agolib: Move the bupsplit selftest into our test framework
Colin Walters [Wed, 25 Jan 2017 14:25:27 +0000 (09:25 -0500)]
lib: Move the bupsplit selftest into our test framework

We weren't running it before. Also I switched it to use GLib. Preparation for
some oxidation work (having an implementation of bupsplit in Rust).

I exported another function to do the raw rollsum operation which is what this
test suite uses.

Closes: #655
Approved by: jlebon

9 years agotravis: Disable tests (but keep builds) on flaky distros
Colin Walters [Mon, 30 Jan 2017 10:21:43 +0000 (11:21 +0100)]
travis: Disable tests (but keep builds) on flaky distros

I went through the Travis history a bit, and these seem to be
the flaky ones.  The ubuntu one is likely no libsoup patches.
The other one @smcv has partially traced to a GPGME race condition
or something like that.

For the libsoup one; as I say in comments, once we have libcurl, I'd like to
enable that mostly everywhere, which should (hopefully) be more reliable.

Closes: #664
Approved by: cgwalters

9 years agolib: Prefix GPG errors with the checksum
Colin Walters [Mon, 30 Jan 2017 09:55:22 +0000 (10:55 +0100)]
lib: Prefix GPG errors with the checksum

I was working on https://bugzilla.redhat.com/show_bug.cgi?id=1393545
and it was annoying that I couldn't know what the new (unsigned)
commit has was until verification succeeded.  I could pull it
manually without GPG, but then it'd be sitting in the repo.

Now:

```
Updating from: fedora-atomic:fedora-atomic/25/x86_64/docker-host

Receiving metadata objects: 0/(estimating) -/s 0 bytes
error: Commit 2fb89decd2cb5c3bd73983f0a7b35c7437f23e3aaa91698fab952bb224e46af5: GPG verification enabled, but no signatures found (use gpg-verify=false in remote config to disable)
```

Closes: #663
Approved by: giuseppe

9 years agolib: Adjust comments in symbols section for last release
Colin Walters [Mon, 30 Jan 2017 06:44:20 +0000 (07:44 +0100)]
lib: Adjust comments in symbols section for last release

2017.1 was released, move its section above the line.

Closes: #661
Approved by: cgwalters

9 years agolibostree: Don't distribute generated enumtypes in tarballs
Simon McVittie [Fri, 27 Jan 2017 09:06:39 +0000 (09:06 +0000)]
libostree: Don't distribute generated enumtypes in tarballs

They are built at "make" time and cleaned up by "make clean", so there
is no need to distribute them.

Signed-off-by: Simon McVittie <smcv@debian.org>
Closes: #665
Approved by: cgwalters

9 years agodocs: update pulp_ostree link
Jonathan Lebon [Mon, 23 Jan 2017 00:06:54 +0000 (19:06 -0500)]
docs: update pulp_ostree link

Closes: #657
Approved by: cgwalters

9 years agotrivial-httpd: trivial option help string fixes
Jonathan Lebon [Sat, 14 Jan 2017 19:22:47 +0000 (14:22 -0500)]
trivial-httpd: trivial option help string fixes

Add an arg description for -P, otherwise it's not immediately obvious
that it takes an argument.

Mention that - is supported for --log-file.

Closes: #657
Approved by: cgwalters

9 years agoRelease 2017.1
Colin Walters [Mon, 23 Jan 2017 20:22:30 +0000 (15:22 -0500)]
Release 2017.1

Just bugfixes, but it's time to ship them.

Closes: #653
Approved by: jlebon

9 years agotests: Add a big (many objects) pull
Colin Walters [Wed, 18 Jan 2017 18:35:42 +0000 (13:35 -0500)]
tests: Add a big (many objects) pull

This would be more likely to tickle things like
https://github.com/ostreedev/ostree/issues/601
reliably.

Also, while working on the curl backend, I hit on the fact that curl doesn't
queue (by default, you can enable) and will happily create 20000+ concurrent TCP
connections if you try. Having this test would have made that more likely to
fail.

Closes: #650
Approved by: giuseppe

9 years agoAdd support for more selective pruning
Colin Walters [Thu, 1 Dec 2016 14:28:24 +0000 (09:28 -0500)]
Add support for more selective pruning

There are use cases for having a single repo with branches
with different lifecycles; a simple example of what I was
trying to do in CentOS Atomic Host work is have "stable"
and "devel" branches, were we want to prune devel, but
retain *all* of stable.

This patch is split into two parts - first we add a low level "delete all
objects not in this set" API, and change the current prune API
to use this.

Next, we move more logic into the "ostree prune" command. This paves the way for
demonstrating how more sophisticated algorithms/logic could be developed outside
of the ostree core.

Also, the --keep-younger-than logic already lived in the commandline, so it
makes sense to keep extending it there.

Closes: https://github.com/ostreedev/ostree/issues/604
Closes: #646
Approved by: jlebon

9 years agoMake corrupt-repo-ref.js executable
Simon McVittie [Thu, 19 Jan 2017 11:34:57 +0000 (11:34 +0000)]
Make corrupt-repo-ref.js executable

Debian's Lintian packaging consistency check complains that it isn't
executable but has a #! line. In fact it's reasonable to run this
script directly, so make it executable, and put it in a _scripts
variable so it will be installed executable.

Closes: #652
Approved by: cgwalters

9 years agoSourced test snippets: remove shebang and make non-executable
Simon McVittie [Thu, 19 Jan 2017 11:23:30 +0000 (11:23 +0000)]
Sourced test snippets: remove shebang and make non-executable

They are installed non-executable, which makes Debian's Lintian
packaging consistency check complain that #! is only useful
in executable scripts. But in fact they are not useful to execute
directly (they rely on setup being done in the script that sources
them), so just chmod them -x.

Closes: #652
Approved by: cgwalters

9 years agoFix TAP syntax in test-basic-user.sh, and run it
Simon McVittie [Thu, 19 Jan 2017 11:21:58 +0000 (11:21 +0000)]
Fix TAP syntax in test-basic-user.sh, and run it

In its initial commit, Alexander Larsson wrote

    This works standalone, but unfortunately it breaks in
    gnome-desktop-testing-runner as /tmp doesn't support
    xattrs, so it is not installed atm.

but we now (a) use /var/tmp, and (b) explicitly skip the test if
xattr support is unavailable. So it should be OK to run now.

Closes: #652
Approved by: cgwalters

9 years agolibtest: Enable web server logs
Colin Walters [Fri, 13 Jan 2017 17:29:17 +0000 (12:29 -0500)]
libtest: Enable web server logs

Now that we're daemonizing, it's useful to have the logs.  I
wanted this while debugging cookies.

Closes: #651
Approved by: giuseppe

9 years agotests: Loosen error regexp
Colin Walters [Mon, 9 Jan 2017 01:45:58 +0000 (20:45 -0500)]
tests: Loosen error regexp

libcurl AFAICS doesn't have an API to convert HTTP code :arrow_right: error
string, so let's make the test regexp operate on both.

Closes: #651
Approved by: giuseppe

9 years agotests: Don't inject newline in URL
Colin Walters [Mon, 9 Jan 2017 01:44:20 +0000 (20:44 -0500)]
tests: Don't inject newline in URL

It turns out libsoup strips all whitespace even *inside* a URL. We could do that
for libcurl too but...really, people shouldn't do that. In this test we were
adding the trailing newline into the URL. If someone complains who is using the
libcurl code we can deal with it then.

Closes: #651
Approved by: giuseppe

9 years agofetcher: Rework API to use strings for tls keys/db
Colin Walters [Mon, 9 Jan 2017 15:02:19 +0000 (10:02 -0500)]
fetcher: Rework API to use strings for tls keys/db

This is prep for the libcurl porting. `GTlsCertificate/GTlsDatabase` are
abstract classes implemented in glib-networking for gnutls. curl's APIs take
file paths as strings, so it's easier to work on both if we move the GLib TLS
bits into the libsoup code.

Closes: #651
Approved by: giuseppe

9 years agopull: Fix theoretical checksum collision for metadata fetches
Colin Walters [Thu, 19 Jan 2017 01:56:28 +0000 (20:56 -0500)]
pull: Fix theoretical checksum collision for metadata fetches

I was making some other changes in this code, and noticed that we were adding
checksums without object types into the same hash table for metadata. We should
*never* do this with both metadata content objects, since in theory a content
object could have the same hash as metadata.

I don't actually think it's possible in practice for pure metadata to collide,
since they have different structures, but let's do this anyways since it's
conceptually right.

Closes: #651
Approved by: giuseppe

9 years agotests: Alias assert_not_reached() -> fatal()
Colin Walters [Tue, 17 Jan 2017 15:16:31 +0000 (10:16 -0500)]
tests: Alias assert_not_reached() -> fatal()

We had a lot of copies of the "echo something 1>&2; exit 1" code even though
`assert_not_reached()` was it.  Hence, I think we need a shorter alias for that.

Doing this particularly since I noticed a missing `1` in an `exit 1` call in the
rpm-ostree copy of this.

Closes: #648
Approved by: jlebon

9 years agounlock: Fix description for --hotfix
Colin Walters [Mon, 16 Jan 2017 18:41:20 +0000 (13:41 -0500)]
unlock: Fix description for --hotfix

Came up during an IRC discussion.  The text is accurate but
not very helpful.

Closes: #647
Approved by: dustymabe

9 years ago.dir-locals.el: Standard Emacs indentation config
Colin Walters [Thu, 12 Jan 2017 15:53:57 +0000 (10:53 -0500)]
.dir-locals.el: Standard Emacs indentation config

Better than having it per-file.

Closes: #644
Approved by: jlebon

9 years agotrivial-httpd: Daemonize better
Colin Walters [Thu, 12 Jan 2017 15:02:23 +0000 (10:02 -0500)]
trivial-httpd: Daemonize better

I was trying to debug `test-pull-c`, and typing `Ctrl-C` in gdb
ended up sending `SIGINT` to trivial-httpd as well, killing it.

Daemonize a bit more properly to avoid this. I also followed the standard
`/dev/null` guidelines.

Closes: #643
Approved by: jlebon

9 years agopull: Rework delta superblock fetches to be async
Colin Walters [Tue, 3 Jan 2017 15:45:58 +0000 (10:45 -0500)]
pull: Rework delta superblock fetches to be async

For the pending libcurl port, the backend is a bit more
sensitive to the main context setup.  The delta superblock
fetch here is a synchronous request in the section that's
supposed to be async.

Now, libsoup definitely supports mixing sync and async requests, but it wasn't
hard to help the libcurl port here by making this one async. Now fetchers are
either sync or async.

Closes: #636
Approved by: jlebon

9 years agoSplit trivial-httpd into separate binary
Colin Walters [Fri, 30 Dec 2016 19:18:34 +0000 (14:18 -0500)]
Split trivial-httpd into separate binary

Working on the libcurl backend, I hit the issue that the trivial-httpd program
depends on libsoup. I briefly considered having two versions, but libcurl is
client only, and moreover trivial-httpd is no longer trivial - it has various
features which are used by the test suite extensively.

Hence, what we'll do is build it as a separate binary which links to libsoup,
and use it during the tests. We *also* currently still provide `ostree
trivial-httpd` since some things use it like `rpm-ostree-toolbox` and the
Cockpit tests.

After those are ported to use some other webserver, I plan to add a build-time
option to drop it.

Closes: #636
Approved by: jlebon

9 years agobuild-sys: Minor makefile tweaks
Colin Walters [Thu, 29 Dec 2016 20:57:53 +0000 (15:57 -0500)]
build-sys: Minor makefile tweaks

I'm introducing a new binary in a later patch, and it makes
sense to move more things to be common into the common section.

Also I noticed we were missing an inclusion of common `$(AM_LDFLAGS)`, though
AFAIK this doesn't break anything right now.

Closes: #636
Approved by: jlebon

9 years agofetcher: Split lowlevel API into file/membuf variants
Colin Walters [Wed, 28 Dec 2016 19:43:28 +0000 (14:43 -0500)]
fetcher: Split lowlevel API into file/membuf variants

The previous commit introduced a single low level API - however,
we can do things in a more optimal way for the curl backend if
we drop the "streaming API" variant.  Currently, we only use
it to synchronously splice into a memory buffer...which is pretty
silly when we could just do that in the backend.

The only tweak here is that we have an "add NUL character" flag that is
(possibly) needed when fetching into a membuf.

The code here ends up being better I think, since we avoid the double return
value for the `_finish()` invocation, and now most of the fetcher code (in the
soup case) writes to a `GOutputStream` consistently.

This will again make things easier for a curl backend.

Closes: #636
Approved by: jlebon

9 years agofetcher: Move high level functions into "fetcher-util"
Colin Walters [Fri, 23 Dec 2016 01:34:07 +0000 (20:34 -0500)]
fetcher: Move high level functions into "fetcher-util"

Conceptually these now lay on top of the core API, and don't reference libsoup.
This is preparation for libcurl porting, but it's also just generally better.

Closes: #636
Approved by: jlebon

9 years agofetcher: Hoist core "mirrored request" API to public
Colin Walters [Thu, 22 Dec 2016 22:57:04 +0000 (17:57 -0500)]
fetcher: Hoist core "mirrored request" API to public

This is in preparation for the libcurl port. We're basically making public what
we had internally. The next step here is to create `ostree-fetcher-util.[ch]`
that only operates in terms of this lower level API.

Also drop the `_mirrored` from the function name since it's
the default now.

Closes: #636
Approved by: jlebon

9 years agodocs: Fix ostree.version -> version
Colin Walters [Fri, 23 Dec 2016 14:59:30 +0000 (09:59 -0500)]
docs: Fix ostree.version -> version

I think originally I had envisioned this as `ostree.version`, but at the last
minute we changed it to just `version`. That's what all of the code uses, so
let's fix the docs.

Closes: #638
Approved by: paulvt

9 years agoadmin: Use execlp() to look for systemctl as the shell would
Paul van Tilburg [Wed, 21 Dec 2016 15:39:45 +0000 (15:39 +0000)]
admin: Use execlp() to look for systemctl as the shell would

Closes: #637
Approved by: cgwalters

9 years agorepo: Fix list_objects annotations
Dan Nicholson [Thu, 22 Sep 2016 18:53:19 +0000 (11:53 -0700)]
repo: Fix list_objects annotations

Without the element-type annotations, bindings don't know how to handle
the elements of the hash table. Since the table is created with destroy
functions, the caller does not own the elements, so transfer container
is used.

Closes: #635
Approved by: cgwalters

9 years agorepo: Fix object list keys ownership
Dan Nicholson [Wed, 21 Dec 2016 11:59:08 +0000 (05:59 -0600)]
repo: Fix object list keys ownership

ostree_object_name_serialize returns a floating ref, so sink it before
adding it to the hash table so it can properly be freed later when the
hash table is destroyed.

This is particularly a problem for pygobject, which sinks the refs on
variants as it marshals them to native python types. If the ref isn't
already sunk, then the ref count won't increase and a critical warning
will be raised when both the hash table and pygobject try to unref it.

Closes: #635
Approved by: cgwalters

9 years agorepo: Fix indentation
Dan Nicholson [Wed, 21 Dec 2016 11:58:19 +0000 (05:58 -0600)]
repo: Fix indentation

Closes: #635
Approved by: cgwalters

9 years agostatic-delta: Pretend that world unreadable objects are new objects
Mario Sanchez Prada [Thu, 15 Dec 2016 19:40:18 +0000 (19:40 +0000)]
static-delta: Pretend that world unreadable objects are new objects

This will prevent including in the delta the bits to update files that
are not world readable, so that we don't run into a permissions problem
when applying the deltas from a bare-user repository that has a bare
repository set as its parent.

This is the case for Endless when updating flatpak runtimes, as the
temporary directory created in ~/.local/share/flatpak/system-cache will
be of type bare-user with its parent set to /var/lib/flatpak which is a
bare repository in EOS, as it's shared with the one at /ostree/repo.

https://phabricator.endlessm.com/T14159

Closes: #634
Approved by: cgwalters

9 years agoRelease 2016.15
Colin Walters [Mon, 12 Dec 2016 16:54:03 +0000 (11:54 -0500)]
Release 2016.15

Closes: #632
Approved by: jlebon

9 years agoci: Rebase to f25
Colin Walters [Mon, 12 Dec 2016 14:05:06 +0000 (09:05 -0500)]
ci: Rebase to f25

This is now the devel target, plus I think this may fix some of the
ASAN issues I'm seeing; I mostly have been using f25 for local
testing.

Also remove the MAINTAINER line since the maintainers are defined by
`git log`.

Closes: #631
Approved by: jlebon

9 years agolib: Squash last use of GFile deltas_dir
Colin Walters [Fri, 9 Dec 2016 04:05:39 +0000 (23:05 -0500)]
lib: Squash last use of GFile deltas_dir

I was having this thought today about making more of the OS readonly,
and ultimately if we got to the point where all ostree operations are
through the repo and sysroot dfds, we could have rpm-ostree be the
only process holding those fds open, and have a read-only bind mount
on top.

Anyways, we're not there, likely won't be soon, but this gets us
closer to being fully fd relative.

Closes: #628
Approved by: jlebon